<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Os1: /home/alejandro/Desarrollo eclipse/os1/include/PnPsolver.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Os1
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">OrbSlam2 documentado y modificado</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,'Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_pn_psolver_8h_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">PnPsolver.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_pn_psolver_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#ifndef PNPSOLVER_H</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#define PNPSOLVER_H</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#include &lt;opencv2/core/core.hpp&gt;</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_map_point_8h.html">MapPoint.h</a>&quot;</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_frame_8h.html">Frame.h</a>&quot;</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_o_r_b___s_l_a_m2.html">ORB_SLAM2</a></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html">   71</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html">PnPsolver</a> {</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <span class="comment">/*</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="comment">   * Constructor, a partir de un cuadro y un vector de puntos 3D.</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="comment">   * - Inicializa en cero la mayoría de los atributos.</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment">   * - Asigna el tamaño definitivo a los vectores, y los carga con datos del cuadro argumento F.</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="comment">   * - Ajusta los parámetros Ransac por defecto.</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment">   * - Copia de F los parámetros intrínsecos.</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="comment">   *</span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="comment">   * @param F Cuadro a relocalizar.</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="comment">   * @param vpMapPointMatches Puntos 3D macheados con un keyframe.  Se guarda en el atributo PnPsolver::mvpMapPointMatches.</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment">   *</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="comment">   * Invocado sólo desde Tracking::Relocalization.</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="comment">   */</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;  <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a7b4cad992a43620e027bfb4bc9ef24f8">PnPsolver</a>(<span class="keyword">const</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_frame.html">Frame</a> &amp;F, <span class="keyword">const</span> vector&lt;MapPoint*&gt; &amp;vpMapPointMatches);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;  <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ad40b921779ed92bfb6b017a76e4d88aa">~PnPsolver</a>();</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#adff29377dcc77891a33113080b6b1eb7">SetRansacParameters</a>(<span class="keywordtype">double</span> probability = 0.99, <span class="keywordtype">int</span> minInliers = 8 , <span class="keywordtype">int</span> maxIterations = 300, <span class="keywordtype">int</span> minSet = 4, <span class="keywordtype">float</span> epsilon = 0.4,</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                           <span class="keywordtype">float</span> th2 = 5.991);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;  cv::Mat <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a784429037a79cb53923f4db181a4d115">find</a>(vector&lt;bool&gt; &amp;vbInliers, <span class="keywordtype">int</span> &amp;nInliers);</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;  cv::Mat <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#abbef2ac776747661112246e85667f452">iterate</a>(<span class="keywordtype">int</span> nIterations, <span class="keywordtype">bool</span> &amp;bNoMore, vector&lt;bool&gt; &amp;vbInliers, <span class="keywordtype">int</span> &amp;nInliers);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#abb27b1402d63ce78890d3f1ea42a75a4">CheckInliers</a>();</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a19710728d61dcf1caa32f31d140f3327">Refine</a>();</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;  <span class="comment">// Functions from the original EPnP code</span></div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aa2747be485a2a87ad5a72f8431edbf77">set_maximum_number_of_correspondences</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> n);</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a78dcd4d88b5ebae795d8c214932c4089">reset_correspondences</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#acfff5312c244e3e6de7bc16b3a72f34b">add_correspondence</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> X, <span class="keyword">const</span> <span class="keywordtype">double</span> Y, <span class="keyword">const</span> <span class="keywordtype">double</span> Z,</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;              <span class="keyword">const</span> <span class="keywordtype">double</span> u, <span class="keyword">const</span> <span class="keywordtype">double</span> v);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;  <span class="keywordtype">double</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aa712661f5888f9e1f580fe7f0117e389">compute_pose</a>(<span class="keywordtype">double</span> R[3][3], <span class="keywordtype">double</span> T[3]);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ab3247415c8c4ff0a5df74096907eac10">relative_error</a>(<span class="keywordtype">double</span> &amp; rot_err, <span class="keywordtype">double</span> &amp; transl_err,</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;              <span class="keyword">const</span> <span class="keywordtype">double</span> Rtrue[3][3], <span class="keyword">const</span> <span class="keywordtype">double</span> ttrue[3],</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;              <span class="keyword">const</span> <span class="keywordtype">double</span> Rest[3][3],  <span class="keyword">const</span> <span class="keywordtype">double</span> test[3]);</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a2be5e2c8a40397fb9a7c7457be95c407">print_pose</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> R[3][3], <span class="keyword">const</span> <span class="keywordtype">double</span> t[3]);</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;  <span class="keywordtype">double</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a8d0ecb37dd35686ae16ff2cdb277cd82">reprojection_error</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> R[3][3], <span class="keyword">const</span> <span class="keywordtype">double</span> t[3]);</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a42c51e43d16d52747facbaca93fcd583">choose_control_points</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a1e35c1813d1a76d6b2a1664ac7080dcd">compute_barycentric_coordinates</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a8cc37bbb1cc4e575d83fb7503136a542">fill_M</a>(CvMat * M, <span class="keyword">const</span> <span class="keywordtype">int</span> row, <span class="keyword">const</span> <span class="keywordtype">double</span> * <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a868ef3e00710a5541d50a15af7be2a20">alphas</a>, <span class="keyword">const</span> <span class="keywordtype">double</span> u, <span class="keyword">const</span> <span class="keywordtype">double</span> v);</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ac4c58e214a0016e1e58cbc1afd9eb5eb">compute_ccs</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> * betas, <span class="keyword">const</span> <span class="keywordtype">double</span> * ut);</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#abeb37c568bb09293bb679d84bb4d2796">compute_pcs</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af33413cd4dc6f3e963cf49997baa40c2">solve_for_sign</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a6d36f0e15dfca9c0ecfff91149882232">find_betas_approx_1</a>(<span class="keyword">const</span> CvMat * L_6x10, <span class="keyword">const</span> CvMat * Rho, <span class="keywordtype">double</span> * betas);</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a95d7f0790ebd99fdc012971dd9a78e65">find_betas_approx_2</a>(<span class="keyword">const</span> CvMat * L_6x10, <span class="keyword">const</span> CvMat * Rho, <span class="keywordtype">double</span> * betas);</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af80a1580251b4368156fb0e0d36a7ac2">find_betas_approx_3</a>(<span class="keyword">const</span> CvMat * L_6x10, <span class="keyword">const</span> CvMat * Rho, <span class="keywordtype">double</span> * betas);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ac9290df9524ca70b3127ea3408fb7b0d">qr_solve</a>(CvMat * A, CvMat * b, CvMat * X);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;  <span class="keywordtype">double</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#afd58911fc21c6255ac5c541b8e4540ac">dot</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> * v1, <span class="keyword">const</span> <span class="keywordtype">double</span> * v2);</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;  <span class="keywordtype">double</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af117c07b4d7b9b5990f98f33d19482d3">dist2</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> * p1, <span class="keyword">const</span> <span class="keywordtype">double</span> * p2);</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af2f8ccb85a3c8341efae307892caad37">compute_rho</a>(<span class="keywordtype">double</span> * rho);</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#add2118dab6bee4303e80c0ca109f3b2c">compute_L_6x10</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> * ut, <span class="keywordtype">double</span> * l_6x10);</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a4b2b11d8afbf638d8cd48d739b071073">gauss_newton</a>(<span class="keyword">const</span> CvMat * L_6x10, <span class="keyword">const</span> CvMat * Rho, <span class="keywordtype">double</span> current_betas[4]);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aae07f773bf3dc205377bd31afa24702a">compute_A_and_b_gauss_newton</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> * l_6x10, <span class="keyword">const</span> <span class="keywordtype">double</span> * rho,</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;                    <span class="keywordtype">double</span> cb[4], CvMat * A, CvMat * b);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;  <span class="keywordtype">double</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ab893a05c84790a0344d20df7eab604e0">compute_R_and_t</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> * ut, <span class="keyword">const</span> <span class="keywordtype">double</span> * betas,</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;             <span class="keywordtype">double</span> R[3][3], <span class="keywordtype">double</span> t[3]);</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#abf90f06f1d7218d8200b2682817ed08a">estimate_R_and_t</a>(<span class="keywordtype">double</span> R[3][3], <span class="keywordtype">double</span> t[3]);</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aa71c8d15e2c605918bae4bc53dc99904">copy_R_and_t</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> R_dst[3][3], <span class="keyword">const</span> <span class="keywordtype">double</span> t_dst[3],</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;            <span class="keywordtype">double</span> R_src[3][3], <span class="keywordtype">double</span> t_src[3]);</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a54b16a3fb045afe5425c004ec7b5fa21">mat_to_quat</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> R[3][3], <span class="keywordtype">double</span> q[4]);</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a8c88482e4f7fb0ca8519a4897c936f4f">  218</a></span>&#160;  <span class="keywordtype">double</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aed7cb3c5dcf35bb2e6074679ba2a76e3">uc</a>, <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a8c88482e4f7fb0ca8519a4897c936f4f">vc</a>, <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af65e2f3506f97dd52f00be073209acd1">fu</a>, <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a97e47e678a18e47e29a3d9b6842222eb">fv</a>;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#afc95fe222dcfad864207925e2783e9ce">  221</a></span>&#160;  <span class="keywordtype">double</span> * <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a053e3eea03b62181aa944c9fc20d5bfa">pws</a>, * <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#afc95fe222dcfad864207925e2783e9ce">us</a>, * <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a868ef3e00710a5541d50a15af7be2a20">alphas</a>, * <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ac832e2ede20f3a111a29b4d1c24b0587">pcs</a>;</div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a7c44ad1754b7d0817470a96156d5772a">  223</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a7c44ad1754b7d0817470a96156d5772a">maximum_number_of_correspondences</a>;</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a2e762455c896cbc55bd81c77af87941f">  225</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a2e762455c896cbc55bd81c77af87941f">number_of_correspondences</a>;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#acce97bf95ac136a37e0ddbfced436d44">  228</a></span>&#160;  <span class="keywordtype">double</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#acce97bf95ac136a37e0ddbfced436d44">cws</a>[4][3], <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ada47673e9ff64787eda1412e35056627">ccs</a>[4][3];</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a7aa2e7f95408450609eba8509f0d5571">  230</a></span>&#160;  <span class="keywordtype">double</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a7aa2e7f95408450609eba8509f0d5571">cws_determinant</a>;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a4a53aa206e4d1f799db01b5b2ef622fe">  233</a></span>&#160;  vector&lt;MapPoint*&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a4a53aa206e4d1f799db01b5b2ef622fe">mvpMapPointMatches</a>;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;  <span class="comment">// 2D Points</span></div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af3b3ccfff0f500c9e73efcb57d84474a">  237</a></span>&#160;  vector&lt;cv::Point2f&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af3b3ccfff0f500c9e73efcb57d84474a">mvP2D</a>;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a7db84340cb13eff1148839ce5e77105b">  240</a></span>&#160;  vector&lt;float&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a7db84340cb13eff1148839ce5e77105b">mvSigma2</a>;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;  <span class="comment">// 3D Points</span></div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a8498b32728a10f7e7ec834576ded87cf">  244</a></span>&#160;  vector&lt;cv::Point3f&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a8498b32728a10f7e7ec834576ded87cf">mvP3Dw</a>;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;  <span class="comment">// Index in Frame</span></div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aa8d7d867978e933e5456c24a6f7433b0">  248</a></span>&#160;  vector&lt;size_t&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aa8d7d867978e933e5456c24a6f7433b0">mvKeyPointIndices</a>;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;  <span class="comment">// Current Estimation</span></div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ab66b8221ddd57480e0cff4fdf305f052">  252</a></span>&#160;<span class="comment"></span>  <span class="keywordtype">double</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ab66b8221ddd57480e0cff4fdf305f052">mRi</a>[3][3];</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ad55a5403377e0072fb551472b4698889">  254</a></span>&#160;  <span class="keywordtype">double</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ad55a5403377e0072fb551472b4698889">mti</a>[3];</div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a833616003399bd9392a403b789cfac41">  256</a></span>&#160;  cv::Mat <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a833616003399bd9392a403b789cfac41">mTcwi</a>;</div><div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a99bf8d10dff819b6f243b0b297627729">  258</a></span>&#160;  vector&lt;bool&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a99bf8d10dff819b6f243b0b297627729">mvbInliersi</a>;</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a94dae01b8088d82477c6f18b32d8b7b0">  260</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a94dae01b8088d82477c6f18b32d8b7b0">mnInliersi</a>;</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;  <span class="comment">// Current Ransac State</span></div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#acd174db02cc77182c187ceef74931f02">  264</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#acd174db02cc77182c187ceef74931f02">mnIterations</a>;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a9419f0917d2e1db0c1a76fe97cb4c326">  267</a></span>&#160;  vector&lt;bool&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a9419f0917d2e1db0c1a76fe97cb4c326">mvbBestInliers</a>;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aaa93341b33e4cb4a03b354e95aaa19e4">  270</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aaa93341b33e4cb4a03b354e95aaa19e4">mnBestInliers</a>;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ab8090b33033ca9d0026113f2c1454fc8">  273</a></span>&#160;  cv::Mat <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ab8090b33033ca9d0026113f2c1454fc8">mBestTcw</a>;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;  <span class="comment">// Refined</span></div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af6c081e732bbda232ccfff28ca9fc75e">  277</a></span>&#160;  cv::Mat <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af6c081e732bbda232ccfff28ca9fc75e">mRefinedTcw</a>;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a6688392be55984a41e6f540fea5f6a49">  280</a></span>&#160;  vector&lt;bool&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a6688392be55984a41e6f540fea5f6a49">mvbRefinedInliers</a>;</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a4055d308ba46690499985cc082389ea1">  283</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a4055d308ba46690499985cc082389ea1">mnRefinedInliers</a>;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;  <span class="comment">// Number of Correspondences</span></div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a130dcfc77d6c98b3f172d1f26d6df37b">  287</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a130dcfc77d6c98b3f172d1f26d6df37b">N</a>;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;  <span class="comment">// Indices for random selection [0 .. N-1]</span></div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a3470afc96c454059aa0d826b1982570f">  291</a></span>&#160;  vector&lt;size_t&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a3470afc96c454059aa0d826b1982570f">mvAllIndices</a>;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;  <span class="comment">// RANSAC probability</span></div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a9716f832c8f6190e66e0f36d9cac09b8">  295</a></span>&#160;  <span class="keywordtype">double</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a9716f832c8f6190e66e0f36d9cac09b8">mRansacProb</a>;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;  <span class="comment">// RANSAC min inliers</span></div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a5694fcb7d9f017ebc25cf096c2459923">  299</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a5694fcb7d9f017ebc25cf096c2459923">mRansacMinInliers</a>;</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;  <span class="comment">// RANSAC max iterations</span></div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a6c7c904ed5e57d7672a0884dae5f3252">  303</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a6c7c904ed5e57d7672a0884dae5f3252">mRansacMaxIts</a>;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;  <span class="comment">// RANSAC expected inliers/total ratio</span></div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aa364e0f3b317e9d0a27c956096c52a03">  307</a></span>&#160;  <span class="keywordtype">float</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aa364e0f3b317e9d0a27c956096c52a03">mRansacEpsilon</a>;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;  <span class="comment">// RANSAC Threshold inlier/outlier. Max error e = dist(P1,T_12*P2)^2</span></div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ae9af481b97b3bfd60f60371af7a534ff">  311</a></span>&#160;  <span class="keywordtype">float</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ae9af481b97b3bfd60f60371af7a534ff">mRansacTh</a>;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;  <span class="comment">// RANSAC Minimun Set used at each iteration</span></div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a02709ce4b9dbd8b7537a13365af2a3db">  315</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a02709ce4b9dbd8b7537a13365af2a3db">mRansacMinSet</a>;</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;  <span class="comment">// Max square error associated with scale level. Max error = th*th*sigma(level)*sigma(level)</span></div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a4e20aadb635e38bbc034c8a3ad1917b5">  319</a></span>&#160;  vector&lt;float&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a4e20aadb635e38bbc034c8a3ad1917b5">mvMaxError</a>;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;};</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;} <span class="comment">//namespace ORB_SLAM</span></div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="preprocessor">#endif //PNPSOLVER_H</span></div><div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_af2f8ccb85a3c8341efae307892caad37"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af2f8ccb85a3c8341efae307892caad37">ORB_SLAM2::PnPsolver::compute_rho</a></div><div class="ttdeci">void compute_rho(double *rho)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:803</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_acce97bf95ac136a37e0ddbfced436d44"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#acce97bf95ac136a37e0ddbfced436d44">ORB_SLAM2::PnPsolver::cws</a></div><div class="ttdeci">double cws[4][3]</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:228</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a9419f0917d2e1db0c1a76fe97cb4c326"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a9419f0917d2e1db0c1a76fe97cb4c326">ORB_SLAM2::PnPsolver::mvbBestInliers</a></div><div class="ttdeci">vector&lt; bool &gt; mvbBestInliers</div><div class="ttdoc">Marca los mejores inliers. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:267</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_frame_html"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_frame.html">ORB_SLAM2::Frame</a></div><div class="ttdoc">Frame representa un cuadro, una imagen, con los puntos singulares detectados. </div><div class="ttdef"><b>Definition:</b> Frame.h:59</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_ab66b8221ddd57480e0cff4fdf305f052"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ab66b8221ddd57480e0cff4fdf305f052">ORB_SLAM2::PnPsolver::mRi</a></div><div class="ttdeci">double mRi[3][3]</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:252</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_ae9af481b97b3bfd60f60371af7a534ff"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ae9af481b97b3bfd60f60371af7a534ff">ORB_SLAM2::PnPsolver::mRansacTh</a></div><div class="ttdeci">float mRansacTh</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:311</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_abb27b1402d63ce78890d3f1ea42a75a4"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#abb27b1402d63ce78890d3f1ea42a75a4">ORB_SLAM2::PnPsolver::CheckInliers</a></div><div class="ttdeci">void CheckInliers()</div><div class="ttdoc">Reproyecta según la pose calculada y vuelve a marcar como inliers solamente a los que tienen un error...</div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:309</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_abbef2ac776747661112246e85667f452"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#abbef2ac776747661112246e85667f452">ORB_SLAM2::PnPsolver::iterate</a></div><div class="ttdeci">cv::Mat iterate(int nIterations, bool &amp;bNoMore, vector&lt; bool &gt; &amp;vbInliers, int &amp;nInliers)</div><div class="ttdoc">Ejecuta n iteraciones de Ransac. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:165</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_ad55a5403377e0072fb551472b4698889"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ad55a5403377e0072fb551472b4698889">ORB_SLAM2::PnPsolver::mti</a></div><div class="ttdeci">double mti[3]</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:254</div></div>
<div class="ttc" id="_map_point_8h_html"><div class="ttname"><a href="_map_point_8h.html">MapPoint.h</a></div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a053e3eea03b62181aa944c9fc20d5bfa"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a053e3eea03b62181aa944c9fc20d5bfa">ORB_SLAM2::PnPsolver::pws</a></div><div class="ttdeci">double * pws</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:221</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a9716f832c8f6190e66e0f36d9cac09b8"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a9716f832c8f6190e66e0f36d9cac09b8">ORB_SLAM2::PnPsolver::mRansacProb</a></div><div class="ttdeci">double mRansacProb</div><div class="ttdoc">Mínima probablidad de acierto aceptada. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:295</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a2be5e2c8a40397fb9a7c7457be95c407"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a2be5e2c8a40397fb9a7c7457be95c407">ORB_SLAM2::PnPsolver::print_pose</a></div><div class="ttdeci">void print_pose(const double R[3][3], const double t[3])</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:630</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_acd174db02cc77182c187ceef74931f02"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#acd174db02cc77182c187ceef74931f02">ORB_SLAM2::PnPsolver::mnIterations</a></div><div class="ttdeci">int mnIterations</div><div class="ttdoc">Cantidad de iteraciones Ransac realizadas. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:264</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a8cc37bbb1cc4e575d83fb7503136a542"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a8cc37bbb1cc4e575d83fb7503136a542">ORB_SLAM2::PnPsolver::fill_M</a></div><div class="ttdeci">void fill_M(CvMat *M, const int row, const double *alphas, const double u, const double v)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:437</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_aa712661f5888f9e1f580fe7f0117e389"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aa712661f5888f9e1f580fe7f0117e389">ORB_SLAM2::PnPsolver::compute_pose</a></div><div class="ttdeci">double compute_pose(double R[3][3], double T[3])</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:478</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_aae07f773bf3dc205377bd31afa24702a"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aae07f773bf3dc205377bd31afa24702a">ORB_SLAM2::PnPsolver::compute_A_and_b_gauss_newton</a></div><div class="ttdeci">void compute_A_and_b_gauss_newton(const double *l_6x10, const double *rho, double cb[4], CvMat *A, CvMat *b)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:813</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a99bf8d10dff819b6f243b0b297627729"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a99bf8d10dff819b6f243b0b297627729">ORB_SLAM2::PnPsolver::mvbInliersi</a></div><div class="ttdeci">vector&lt; bool &gt; mvbInliersi</div><div class="ttdoc">Marca de inlier. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:258</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_ab893a05c84790a0344d20df7eab604e0"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ab893a05c84790a0344d20df7eab604e0">ORB_SLAM2::PnPsolver::compute_R_and_t</a></div><div class="ttdeci">double compute_R_and_t(const double *ut, const double *betas, double R[3][3], double t[3])</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:652</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a8c88482e4f7fb0ca8519a4897c936f4f"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a8c88482e4f7fb0ca8519a4897c936f4f">ORB_SLAM2::PnPsolver::vc</a></div><div class="ttdeci">double vc</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:218</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_ada47673e9ff64787eda1412e35056627"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ada47673e9ff64787eda1412e35056627">ORB_SLAM2::PnPsolver::ccs</a></div><div class="ttdeci">double ccs[4][3]</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:228</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_aaa93341b33e4cb4a03b354e95aaa19e4"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aaa93341b33e4cb4a03b354e95aaa19e4">ORB_SLAM2::PnPsolver::mnBestInliers</a></div><div class="ttdeci">int mnBestInliers</div><div class="ttdoc">Cantidad de &quot;mejores inliers&quot;. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:270</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a6c7c904ed5e57d7672a0884dae5f3252"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a6c7c904ed5e57d7672a0884dae5f3252">ORB_SLAM2::PnPsolver::mRansacMaxIts</a></div><div class="ttdeci">int mRansacMaxIts</div><div class="ttdoc">Máxima cantidad de iteraciones permitidas para encontrar la solución. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:303</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a7b4cad992a43620e027bfb4bc9ef24f8"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a7b4cad992a43620e027bfb4bc9ef24f8">ORB_SLAM2::PnPsolver::PnPsolver</a></div><div class="ttdeci">PnPsolver(const Frame &amp;F, const vector&lt; MapPoint *&gt; &amp;vpMapPointMatches)</div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:67</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a4b2b11d8afbf638d8cd48d739b071073"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a4b2b11d8afbf638d8cd48d739b071073">ORB_SLAM2::PnPsolver::gauss_newton</a></div><div class="ttdeci">void gauss_newton(const CvMat *L_6x10, const CvMat *Rho, double current_betas[4])</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:841</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_afc95fe222dcfad864207925e2783e9ce"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#afc95fe222dcfad864207925e2783e9ce">ORB_SLAM2::PnPsolver::us</a></div><div class="ttdeci">double * us</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:221</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_ac832e2ede20f3a111a29b4d1c24b0587"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ac832e2ede20f3a111a29b4d1c24b0587">ORB_SLAM2::PnPsolver::pcs</a></div><div class="ttdeci">double * pcs</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:221</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a7c44ad1754b7d0817470a96156d5772a"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a7c44ad1754b7d0817470a96156d5772a">ORB_SLAM2::PnPsolver::maximum_number_of_correspondences</a></div><div class="ttdeci">int maximum_number_of_correspondences</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:223</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_aed7cb3c5dcf35bb2e6074679ba2a76e3"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aed7cb3c5dcf35bb2e6074679ba2a76e3">ORB_SLAM2::PnPsolver::uc</a></div><div class="ttdeci">double uc</div><div class="ttdoc">Parámetros de cámara. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:218</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a94dae01b8088d82477c6f18b32d8b7b0"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a94dae01b8088d82477c6f18b32d8b7b0">ORB_SLAM2::PnPsolver::mnInliersi</a></div><div class="ttdeci">int mnInliersi</div><div class="ttdoc">Cantidad de inliers. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:260</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_af117c07b4d7b9b5990f98f33d19482d3"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af117c07b4d7b9b5990f98f33d19482d3">ORB_SLAM2::PnPsolver::dist2</a></div><div class="ttdeci">double dist2(const double *p1, const double *p2)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:538</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a130dcfc77d6c98b3f172d1f26d6df37b"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a130dcfc77d6c98b3f172d1f26d6df37b">ORB_SLAM2::PnPsolver::N</a></div><div class="ttdeci">int N</div><div class="ttdoc">Cantidad de correspondencias. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:287</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a97e47e678a18e47e29a3d9b6842222eb"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a97e47e678a18e47e29a3d9b6842222eb">ORB_SLAM2::PnPsolver::fv</a></div><div class="ttdeci">double fv</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:218</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_af3b3ccfff0f500c9e73efcb57d84474a"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af3b3ccfff0f500c9e73efcb57d84474a">ORB_SLAM2::PnPsolver::mvP2D</a></div><div class="ttdeci">vector&lt; cv::Point2f &gt; mvP2D</div><div class="ttdoc">Coordenadas 2D de los puntos singulares. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:237</div></div>
<div class="ttc" id="namespace_o_r_b___s_l_a_m2_html"><div class="ttname"><a href="namespace_o_r_b___s_l_a_m2.html">ORB_SLAM2</a></div><div class="ttdoc">This file is part of ORB-SLAM2. </div><div class="ttdef"><b>Definition:</b> Converter.h:31</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_add2118dab6bee4303e80c0ca109f3b2c"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#add2118dab6bee4303e80c0ca109f3b2c">ORB_SLAM2::PnPsolver::compute_L_6x10</a></div><div class="ttdeci">void compute_L_6x10(const double *ut, double *l_6x10)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:761</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_abeb37c568bb09293bb679d84bb4d2796"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#abeb37c568bb09293bb679d84bb4d2796">ORB_SLAM2::PnPsolver::compute_pcs</a></div><div class="ttdeci">void compute_pcs(void)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:467</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_aa71c8d15e2c605918bae4bc53dc99904"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aa71c8d15e2c605918bae4bc53dc99904">ORB_SLAM2::PnPsolver::copy_R_and_t</a></div><div class="ttdeci">void copy_R_and_t(const double R_dst[3][3], const double t_dst[3], double R_src[3][3], double t_src[3])</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:528</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html">ORB_SLAM2::PnPsolver</a></div><div class="ttdoc">Solucionador Point n-Points EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:71</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a78dcd4d88b5ebae795d8c214932c4089"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a78dcd4d88b5ebae795d8c214932c4089">ORB_SLAM2::PnPsolver::reset_correspondences</a></div><div class="ttdeci">void reset_correspondences(void)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:359</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_af33413cd4dc6f3e963cf49997baa40c2"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af33413cd4dc6f3e963cf49997baa40c2">ORB_SLAM2::PnPsolver::solve_for_sign</a></div><div class="ttdeci">void solve_for_sign(void)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:637</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_aa8d7d867978e933e5456c24a6f7433b0"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aa8d7d867978e933e5456c24a6f7433b0">ORB_SLAM2::PnPsolver::mvKeyPointIndices</a></div><div class="ttdeci">vector&lt; size_t &gt; mvKeyPointIndices</div><div class="ttdoc">Índices de los puntos singulares. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:248</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a7aa2e7f95408450609eba8509f0d5571"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a7aa2e7f95408450609eba8509f0d5571">ORB_SLAM2::PnPsolver::cws_determinant</a></div><div class="ttdeci">double cws_determinant</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:230</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_af65e2f3506f97dd52f00be073209acd1"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af65e2f3506f97dd52f00be073209acd1">ORB_SLAM2::PnPsolver::fu</a></div><div class="ttdeci">double fu</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:218</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_adff29377dcc77891a33113080b6b1eb7"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#adff29377dcc77891a33113080b6b1eb7">ORB_SLAM2::PnPsolver::SetRansacParameters</a></div><div class="ttdeci">void SetRansacParameters(double probability=0.99, int minInliers=8, int maxIterations=300, int minSet=4, float epsilon=0.4, float th2=5.991)</div><div class="ttdoc">Ajusta los parámetros de Ransac. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:121</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a54b16a3fb045afe5425c004ec7b5fa21"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a54b16a3fb045afe5425c004ec7b5fa21">ORB_SLAM2::PnPsolver::mat_to_quat</a></div><div class="ttdeci">void mat_to_quat(const double R[3][3], double q[4])</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:985</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a2e762455c896cbc55bd81c77af87941f"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a2e762455c896cbc55bd81c77af87941f">ORB_SLAM2::PnPsolver::number_of_correspondences</a></div><div class="ttdeci">int number_of_correspondences</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:225</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a8498b32728a10f7e7ec834576ded87cf"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a8498b32728a10f7e7ec834576ded87cf">ORB_SLAM2::PnPsolver::mvP3Dw</a></div><div class="ttdeci">vector&lt; cv::Point3f &gt; mvP3Dw</div><div class="ttdoc">Coordenadas 3D de los puntos 3D. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:244</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a42c51e43d16d52747facbaca93fcd583"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a42c51e43d16d52747facbaca93fcd583">ORB_SLAM2::PnPsolver::choose_control_points</a></div><div class="ttdeci">void choose_control_points(void)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:376</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a8d0ecb37dd35686ae16ff2cdb277cd82"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a8d0ecb37dd35686ae16ff2cdb277cd82">ORB_SLAM2::PnPsolver::reprojection_error</a></div><div class="ttdeci">double reprojection_error(const double R[3][3], const double t[3])</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:551</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_ac4c58e214a0016e1e58cbc1afd9eb5eb"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ac4c58e214a0016e1e58cbc1afd9eb5eb">ORB_SLAM2::PnPsolver::compute_ccs</a></div><div class="ttdeci">void compute_ccs(const double *betas, const double *ut)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:454</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a4055d308ba46690499985cc082389ea1"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a4055d308ba46690499985cc082389ea1">ORB_SLAM2::PnPsolver::mnRefinedInliers</a></div><div class="ttdeci">int mnRefinedInliers</div><div class="ttdoc">Cantidad de inliers refinados. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:283</div></div>
<div class="ttc" id="_frame_8h_html"><div class="ttname"><a href="_frame_8h.html">Frame.h</a></div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a5694fcb7d9f017ebc25cf096c2459923"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a5694fcb7d9f017ebc25cf096c2459923">ORB_SLAM2::PnPsolver::mRansacMinInliers</a></div><div class="ttdeci">int mRansacMinInliers</div><div class="ttdoc">Mínima cantidad de inliers aceptados. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:299</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_ac9290df9524ca70b3127ea3408fb7b0d"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ac9290df9524ca70b3127ea3408fb7b0d">ORB_SLAM2::PnPsolver::qr_solve</a></div><div class="ttdeci">void qr_solve(CvMat *A, CvMat *b, CvMat *X)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:861</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a4a53aa206e4d1f799db01b5b2ef622fe"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a4a53aa206e4d1f799db01b5b2ef622fe">ORB_SLAM2::PnPsolver::mvpMapPointMatches</a></div><div class="ttdeci">vector&lt; MapPoint * &gt; mvpMapPointMatches</div><div class="ttdoc">Puntos 3D macheados. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:233</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_afd58911fc21c6255ac5c541b8e4540ac"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#afd58911fc21c6255ac5c541b8e4540ac">ORB_SLAM2::PnPsolver::dot</a></div><div class="ttdeci">double dot(const double *v1, const double *v2)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:546</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_ad40b921779ed92bfb6b017a76e4d88aa"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ad40b921779ed92bfb6b017a76e4d88aa">ORB_SLAM2::PnPsolver::~PnPsolver</a></div><div class="ttdeci">~PnPsolver()</div><div class="ttdoc">Destructor por defecto. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:112</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a95d7f0790ebd99fdc012971dd9a78e65"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a95d7f0790ebd99fdc012971dd9a78e65">ORB_SLAM2::PnPsolver::find_betas_approx_2</a></div><div class="ttdeci">void find_betas_approx_2(const CvMat *L_6x10, const CvMat *Rho, double *betas)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:700</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a4e20aadb635e38bbc034c8a3ad1917b5"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a4e20aadb635e38bbc034c8a3ad1917b5">ORB_SLAM2::PnPsolver::mvMaxError</a></div><div class="ttdeci">vector&lt; float &gt; mvMaxError</div><div class="ttdoc">Máximo error de reproyección según el nivel de escala de la pirámide. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:319</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a02709ce4b9dbd8b7537a13365af2a3db"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a02709ce4b9dbd8b7537a13365af2a3db">ORB_SLAM2::PnPsolver::mRansacMinSet</a></div><div class="ttdeci">int mRansacMinSet</div><div class="ttdoc">Cantidad mínima de puntos a considerar en cada iteración. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:315</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a6d36f0e15dfca9c0ecfff91149882232"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a6d36f0e15dfca9c0ecfff91149882232">ORB_SLAM2::PnPsolver::find_betas_approx_1</a></div><div class="ttdeci">void find_betas_approx_1(const CvMat *L_6x10, const CvMat *Rho, double *betas)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:668</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_aa2747be485a2a87ad5a72f8431edbf77"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aa2747be485a2a87ad5a72f8431edbf77">ORB_SLAM2::PnPsolver::set_maximum_number_of_correspondences</a></div><div class="ttdeci">void set_maximum_number_of_correspondences(const int n)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:343</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a7db84340cb13eff1148839ce5e77105b"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a7db84340cb13eff1148839ce5e77105b">ORB_SLAM2::PnPsolver::mvSigma2</a></div><div class="ttdeci">vector&lt; float &gt; mvSigma2</div><div class="ttdoc">Factor de escala al cuadrado, correspondiente al punto 2D. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:240</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_acfff5312c244e3e6de7bc16b3a72f34b"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#acfff5312c244e3e6de7bc16b3a72f34b">ORB_SLAM2::PnPsolver::add_correspondence</a></div><div class="ttdeci">void add_correspondence(const double X, const double Y, const double Z, const double u, const double v)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:364</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_ab8090b33033ca9d0026113f2c1454fc8"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ab8090b33033ca9d0026113f2c1454fc8">ORB_SLAM2::PnPsolver::mBestTcw</a></div><div class="ttdeci">cv::Mat mBestTcw</div><div class="ttdoc">Mejor pose. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:273</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a868ef3e00710a5541d50a15af7be2a20"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a868ef3e00710a5541d50a15af7be2a20">ORB_SLAM2::PnPsolver::alphas</a></div><div class="ttdeci">double * alphas</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:221</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a3470afc96c454059aa0d826b1982570f"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a3470afc96c454059aa0d826b1982570f">ORB_SLAM2::PnPsolver::mvAllIndices</a></div><div class="ttdeci">vector&lt; size_t &gt; mvAllIndices</div><div class="ttdoc">Índice de las correspondencias en los vectores apareados de puntos 3D y demás. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:291</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_abf90f06f1d7218d8200b2682817ed08a"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#abf90f06f1d7218d8200b2682817ed08a">ORB_SLAM2::PnPsolver::estimate_R_and_t</a></div><div class="ttdeci">void estimate_R_and_t(double R[3][3], double t[3])</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:570</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_af6c081e732bbda232ccfff28ca9fc75e"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af6c081e732bbda232ccfff28ca9fc75e">ORB_SLAM2::PnPsolver::mRefinedTcw</a></div><div class="ttdeci">cv::Mat mRefinedTcw</div><div class="ttdoc">Pose refinada. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:277</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a784429037a79cb53923f4db181a4d115"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a784429037a79cb53923f4db181a4d115">ORB_SLAM2::PnPsolver::find</a></div><div class="ttdeci">cv::Mat find(vector&lt; bool &gt; &amp;vbInliers, int &amp;nInliers)</div><div class="ttdoc">Ejecuta el número máximo de iteraciones Ransac. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:159</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a6688392be55984a41e6f540fea5f6a49"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a6688392be55984a41e6f540fea5f6a49">ORB_SLAM2::PnPsolver::mvbRefinedInliers</a></div><div class="ttdeci">vector&lt; bool &gt; mvbRefinedInliers</div><div class="ttdoc">Marca los inliers refinados. </div><div class="ttdef"><b>Definition:</b> PnPsolver.h:280</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_af80a1580251b4368156fb0e0d36a7ac2"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#af80a1580251b4368156fb0e0d36a7ac2">ORB_SLAM2::PnPsolver::find_betas_approx_3</a></div><div class="ttdeci">void find_betas_approx_3(const CvMat *L_6x10, const CvMat *Rho, double *betas)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:732</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a1e35c1813d1a76d6b2a1664ac7080dcd"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a1e35c1813d1a76d6b2a1664ac7080dcd">ORB_SLAM2::PnPsolver::compute_barycentric_coordinates</a></div><div class="ttdeci">void compute_barycentric_coordinates(void)</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:412</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_aa364e0f3b317e9d0a27c956096c52a03"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#aa364e0f3b317e9d0a27c956096c52a03">ORB_SLAM2::PnPsolver::mRansacEpsilon</a></div><div class="ttdeci">float mRansacEpsilon</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:307</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a19710728d61dcf1caa32f31d140f3327"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a19710728d61dcf1caa32f31d140f3327">ORB_SLAM2::PnPsolver::Refine</a></div><div class="ttdeci">bool Refine()</div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:261</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_a833616003399bd9392a403b789cfac41"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#a833616003399bd9392a403b789cfac41">ORB_SLAM2::PnPsolver::mTcwi</a></div><div class="ttdeci">cv::Mat mTcwi</div><div class="ttdef"><b>Definition:</b> PnPsolver.h:256</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_pn_psolver_html_ab3247415c8c4ff0a5df74096907eac10"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#ab3247415c8c4ff0a5df74096907eac10">ORB_SLAM2::PnPsolver::relative_error</a></div><div class="ttdeci">void relative_error(double &amp;rot_err, double &amp;transl_err, const double Rtrue[3][3], const double ttrue[3], const double Rest[3][3], const double test[3])</div><div class="ttdoc">Función del código original EPnP. </div><div class="ttdef"><b>Definition:</b> PnPsolver.cc:955</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="_pn_psolver_8h.html">PnPsolver.h</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
